/**
 * 项目名：	Rumba Plan
 * 
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2007，所有权利保留。
 * 
 * 文件名：	IQueryDef.java
 * 模块说明：	
 * 修改历史：
 * May 14, 2007 - zhangyanbo - 创建。
 */
package com.hd123.rumba.qt.def;

import java.io.File;
import java.util.List;

import com.hd123.rumba.cartridge.ICartFunctionView;
import com.hd123.rumba.exception.BusinessException;
import com.hd123.rumba.runtime.IBaseEntity;
import com.hd123.rumba.user.IPermission;

/**
 * 查询定义。
 * 
 * @author zhangyanbo
 * 
 */
public interface IQueryDef extends IBaseEntity {

  /** 路径 */
  public String getLocation() throws BusinessException;

  public void setLocation(String location) throws BusinessException;

  /** 名称 */
  public String getName() throws BusinessException;

  public void setName(String name) throws BusinessException;

  /** 文件名 */
  public String getFilename() throws BusinessException;

  public void setFilename(String filename) throws BusinessException;

  /** 相关功能视图 */
  public List<IQueryDefFuncView> getFucvViews() throws BusinessException;

  public void setFucvViews(List<IQueryDefFuncView> fucvViews) throws BusinessException;

  /** 取得相对于根目录的相对路径名 */
  public String getRelativeFilename() throws BusinessException;

  /** 取得全路径文件名 */
  public String getFullFilename() throws BusinessException;

  /** 取得文件 */
  public File getFile() throws BusinessException;

  /** 取得打印模版文件 */
  public File getTemplateFile() throws BusinessException;

  /** 关联权限 */
  public IPermission getPermission() throws BusinessException;

  public void setPermission(IPermission perm) throws BusinessException;

  public boolean atRoot() throws BusinessException;

  /** 取查询定义对应的权限名称（不带功能视图前缀） */
  public String getPermissionName() throws BusinessException;

  /** 取查询定义对应的权限id（带功能视图前缀） */
  public String getCFVPermissionName(ICartFunctionView cfv) throws BusinessException;
}
